home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / qlib205.zip / QLIB.ZIP / TEST / RAM.ASM < prev    next >
Assembly Source File  |  1997-07-09  |  2KB  |  113 lines

  1. include qlib.inc
  2. include string.inc
  3. include stdio.inc
  4. include stdlib.inc
  5.  
  6. .data
  7. h1 dd ?
  8. h2 dd ?
  9. h3 dd ?
  10. t1 dd ?
  11. r1 REAL8 ?
  12. r2 REAL8 ?
  13. gig REAL8 1073741824.0
  14. meg REAL8 1048576.0
  15. kilo REAL8 1024.0
  16.  
  17. left dd ?
  18.  
  19. .code
  20. pn proc  ;print number
  21.   ;eax=#
  22.  
  23.   .if eax >= 1024*1024*1024  ;Gigs
  24.     mov t1,eax
  25.     fild t1
  26.     fld gig
  27.     fdiv
  28.     fst r1
  29.     fwait
  30.     callp printf,"%.1f GBs (%d)\n",r1,t1
  31.   .elseif eax >= 1024*1024   ;Megs
  32.     mov t1,eax
  33.     fild t1
  34.     fld meg
  35.     fdiv
  36.     fst r1
  37.     fwait
  38.     callp printf,"%.1f MBs (%d)\n",r1,t1
  39.   .elseif eax >= 1024        ;Kilos
  40.     mov t1,eax
  41.     fild t1
  42.     fld kilo
  43.     fdiv
  44.     fst r1
  45.     fwait
  46.     callp printf,"%.1f KBs (%d)\n",r1,t1
  47.   .else                      ;Bytes
  48.     mov t1,eax
  49.     fild t1
  50.     fst r1
  51.     fwait
  52.     callp printf,"%.1f Bs (%d)\n",r1,t1
  53.   .endif
  54.   ret
  55. pn endp
  56.  
  57. main proc
  58.   callp printf,"  Total free="
  59.   callp coreleft
  60.   mov left,eax
  61.   call pn
  62.   callp printf,"Largest free="
  63.   callp qfree
  64.   call pn
  65.  
  66.   .if left < 64*1024
  67.     callp printf,"Insufficent memory avail. for tests\n"
  68.     ret
  69.   .endif
  70.  
  71. ;test malloc(), realloc(), free()
  72.   callp malloc,1024
  73.   mov h1,eax
  74.   .if eax==NULL
  75.     jmp bad
  76.   .endif
  77.   callp malloc,1
  78.   mov h2,eax
  79.   .if eax==NULL
  80.     jmp bad
  81.   .endif
  82.   callp malloc,1024
  83.   mov h3,eax
  84.   .if eax==NULL
  85.     jmp bad
  86.   .endif
  87.   callp free,h2
  88.   .if eax==ERROR
  89.     jmp bad
  90.   .endif
  91.   callp realloc,h1,1025
  92.   mov h1,eax
  93.   .if eax==NULL
  94.     jmp bad
  95.   .endif
  96.   callp free,h1
  97.   .if eax==ERROR
  98.     jmp bad
  99.   .endif
  100.   callp free,h3
  101.   .if eax==ERROR
  102.     jmp bad
  103.   .endif
  104.   ret
  105. bad:
  106.   callp printf,"Heap corrupted! (bug?)\n"
  107.   ret
  108. main endp
  109.  
  110. end
  111.  
  112.  
  113.